import java.util.*;

/**
 * @author LKQ
 * @date 2022/4/23 14:29
 * @description 思路：将整数转为字符串，先从前往后遍历，如果已经是递增的话，那么直接返回，如果不是，那么需要递减
 */
public class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        solution.monotoneIncreasingDigits(100);
    }
    public int monotoneIncreasingDigits(int n) {
        char[] c = String.valueOf(n).toCharArray();
        int i = 1;
        // 如果本来就是递增的数字，那么直接到最后
        while (i < c.length && c[i-1] <= c[i]) {
            i++;
        }
        if (i < c.length) {
            // 中间出现减少，那么前面需要减少1，直到满足条件
            while (i > 0 && c[i - 1] > c[i]) {
                c[i-1] -= 1;
                i -= 1;
            }
            // 后面全部赋值为9
            for ( i += 1; i < c.length; i++) {
                c[i] = '9';
            }
        }
        return Integer.parseInt(new String(c));
    }
}
